The system and method of the present embodiment relate generally to delivering data packets across a shared medium communications network by first using algorithms to detect communications interactions (collisions) and subsequently using different algorithms to avoid these communications interactions, thereby converting the communications system from a probabilistic communications environment into a deterministic communications environment.
Quality of packet, frame, or datagram based (hereafter simply referred to as packet based) communications can be affected if the communications system is probabilistic in nature. A non-deterministic or probabilistic system can allow packets from one service to collide with packets from another network services (two or more data packets attempting to use the same communications resource at the same time), resulting in service contention at network choke points. This contention can result in communications degradation through packet loss, excessive delay, and enhanced jitter (change in delay). Further, loss of quality can occur at any point during the service transmission. Therefore, a communication service that starts out working with no contention may experience significant contention and quality degradation at some point during its communications session.
While it is possible to use different priority levels in an attempt to improve communications, using priority levels alone does not remove the probabilistic nature of packet based communications; priorities just improve the probabilities of one service at the expense of another service. Further, a service may attempt to mitigate contention through reducing data rates, adding error correction information, or a combination of these techniques. These adjustments either reduce service quality (through reduced data rates) or increase bandwidth requirements (through error correction information), yet these efforts do not remove the probabilistic nature of the communications medium. Even further, other systems may attempt to mitigate contention through a “training” period where an endpoint investigates potential contention before adding traffic to the network environment. The endpoint then uses that information to control its traffic insertion. However, this technique fails if the underlying network environment changes during the communications session (for example, a link is lost and traffic is shunted to another path, or an over-the-air—e.g. satellite or microwave—path experiences noise and data rate degradation), making obsolete the information gathered during the training period. A further contention mitigation attempt uses a centralized control system to manage when services can insert their traffic into the network. Managed networks remove the autonomous nature of packet based communications while adding a limit to service setup speed and limiting system scalability.
Further, probabilistic communications environments reduce the communications environment ability to offer various communications features and capabilities. For example, if priority is used to reduce probabilistic interactions of different service types, it removes the environment's capability of allowing preemption of communications within a service type or across service types. Consider a network that uses four priority levels to separate out contention between different services. The highest priority (e.g. priority 3) may be reserved for network control and management; the second highest (e.g. priority 2) may be reserved for voice traffic; the third highest (e.g. priority 1) may be reserved for video traffic; while the lowest priority is reserved for all other traffic. If a video service must preempt all other video services (for example, it is an emergency or other critical video), it could not do so at priority 1. Therefore, it would need to increase its priority to 2, where it would interfere with and interact with all of the voice traffic. While the video would preempt other video traffic, it would still be interfered with by voice traffic, and therefore not be deterministic. The video could attempt to increase its priority even further to priority 3, but it would then contend with management traffic. If a management service needed to preempt other management services, it would need to increase its priority above 3, which is not possible. This is an example of how a non-deterministic environment could not provide a preemption option to its various services since preemption would still not be deterministic, and would either interfere with other services or not have a priority that would be used for preemption. Non-deterministic communications reduces the quality of data services across the network. Services cannot guarantee data delivery and therefore they cannot provide truly high-availability communications, provide the highest security levels, fully utilize the underlying network infrastructure, and allow the network owner to manage the communication services as true services instead of as packet streams.
What is needed is a system and method that allows communications services on a packet based, shared medium network to work in a deterministic manner, resulting in superior and predictable communications quality. What is further needed is a system and method that can enable detection and avoidance of packet collision, thus eliminating resource contention at network choke-points. What is still further needed is a system and method that can detect changes in the underlying communications environment while a service is active (and at any point during the communications' lifetime) and adjust services to those changes, reestablishing full determinism to the services using that communications environment. What is still further needed is a system and method that can detect and adjust to contention automatically and completely autonomously, and therefore does not need a separate training period or central server to control data insertion into the network.
What is even still further needed is a system and method that provides deterministic communications and therefore allows all services access to all features and capabilities of the communications environment. What is still further needed is a system and method that allows service preemption based on service preemption needs, not on service type. What is even further needed is a system and method that allows deterministic communications of all services, therefore allowing management of those services as data services and not as packet streams. Finally, what is needed is a system and method that provides all of these capabilities without having to manage, manipulate, change, configure, alter, train, analyze, control, or otherwise affect the core communications infrastructure to enable existing, new, or evolving communications services to function in a deterministic and consistent manner.